using System;
using System.Collections.Generic;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using EYDIngenieria.ERP.Aplicacion.Mantenedores;
using EYDIngenieria.ERP.ObjetosDeNegocio.Dominio;

public partial class Reportes_Cheques : System.Web.UI.Page
{
    MantenedorCheque mantenedorCheque = new MantenedorCheque();
    MantenedorCuentaCorriente mantenedorCuentaCorriente = new MantenedorCuentaCorriente();
    MantenedorChequera mantenedorChequera = new MantenedorChequera();

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Cheque[] cheques = mantenedorCheque.Listar();
            gdvCheques.DataSource = cheques;
            gdvCheques.DataBind();
            Session["CHEQUES"] = cheques;

            CuentaCorriente[] cuentas = mantenedorCuentaCorriente.Listar();
            ListItem li;
            foreach (CuentaCorriente cuenta in cuentas)
            {
                li = new ListItem(cuenta.Numero.ToString() +" - "+ cuenta.Banco.Codigo,cuenta.Id.ToString());
                ddlCuentaCorriente.Items.Add(li);
            }
            li = new ListItem("Seleccione", "0");
            ddlCuentaCorriente.Items.Insert(0, li);

        }


    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        int idChequera = int.Parse(ddlChequera.SelectedValue == string.Empty ? "0" : ddlChequera.SelectedValue);
        int idCuentaCorriente = int.Parse(ddlCuentaCorriente.SelectedValue == string.Empty ? "0" : ddlCuentaCorriente.SelectedValue);
        Cheque[] cheques = mantenedorCheque.Listar();
        IList<Cheque> chequesFiltrados = new List<Cheque>();
        DateTime fechaNula = new DateTime(1900,1,1);
        foreach (Cheque cheque in cheques)
        {
            if ((cheque.Chequera.Numero == idChequera || idChequera ==0)&&(cheque.Chequera.CuentaCorriente.Id == idCuentaCorriente || idCuentaCorriente ==0))
            {
                if (((chbEmitido.Checked  && cheque.FechaEmision != fechaNula)|| !chbEmitido.Checked) && //Cheques emitidos
                    ((chbPagado.Checked  && cheque.FechaPago!= fechaNula)|| !chbPagado.Checked))
                {   
                    chequesFiltrados.Add(cheque);    
                }
               
                
            }
        }
        gdvCheques.DataSource = chequesFiltrados;
        Session["CHEQUES"] = chequesFiltrados;
        gdvCheques.DataBind();
    }
    protected void ddlCuentaCorriente_SelectedIndexChanged(object sender, EventArgs e)
    {
        ListItem li = new ListItem("Seleccione", "0");
        if(ddlCuentaCorriente.SelectedValue=="0")
        {
            ddlChequera.Items.Clear();
            ddlChequera.Items.Add(li);
            return;
        }
        CuentaCorriente cuentaCorriente = mantenedorCuentaCorriente.Obtener(int.Parse(ddlCuentaCorriente.SelectedValue));
        ddlChequera.DataValueField = "Id";
        ddlChequera.DataValueField = "Numero";
        ddlChequera.DataSource = mantenedorChequera.Listar(cuentaCorriente);
        ddlChequera.DataBind();
        
        ddlChequera.Items.Insert(0, li);
    }
}
